package com.kc.business.service;

import com.aliyun.openservices.ons.api.Action;
import com.aliyun.openservices.ons.api.Message;
import com.kc.business.domain.BizBusinessGoods;
import com.kc.business.domain.BizBusinessOrder;
import com.kc.business.domain.BizBusinessOrderGoods;
import com.kc.business.domain.BizScenicBusiness;
import com.kc.business.domain.dto.BizBusinessOrderInfoDTO;
import com.kc.business.domain.dto.BizOrderInfoDTO;


import java.util.List;

/**
 * 商家订单service
 */
public interface IBizBusinessOrderService {
    /**
     * 根据商品
     * @param ids
     * @return
     */
    List<BizBusinessGoods> getGoodsListByGoodsIds(Integer[] ids);

    /**
     * 商家订单列表
     * @param businessId
     * @param status
     * @return
     */
    List<BizBusinessOrderInfoDTO> orderList(Integer businessId, Integer status, BizScenicBusiness kcScenicBusiness);


    /**
     * 获取订单表数据详情
     * @param orderId
     * @param userId
     * @return
     */
    BizBusinessOrder getOrderInfo(Integer orderId, Integer userId);

    List<BizBusinessOrder> getOrderList(Integer businessId,Integer status);

    /**
     * 订单取消
     * @param kcBusinessOrder
     * @param userId
     * @return
     */
    Integer orderCancel(BizBusinessOrder kcBusinessOrder, Integer userId);

    /**
     * 订单数据修改
     * @param kcBusinessOrder
     * @param userId
     * @return
     */
    Integer updateOrder(BizBusinessOrder kcBusinessOrder, Integer userId);

    /**
     * 获取类别下订单状态
     * @param businessId
     * @param status
     * @return
     */
    Integer getCountNum(Integer businessId,Integer status);

    /**
     * 根据订单状态获取订单列表
     * @param status
     * @return
     */
    List<BizBusinessOrder> getOrderListByStatus(Integer status);

    /**
     * 异步取消订单
     * @param waitingReceiveOrders
     */
    void autoCancelAsync(List<BizBusinessOrder> waitingReceiveOrders);

    /**
     * 待确认订单异步取消并退款
     * @param waitingReceiveOrders
     */
    void autoWatConfirmCancelAsync(List<BizBusinessOrder> waitingReceiveOrders);
    /**
     * 根据订单号获取订单详情
     * @param orderSn
     * @return
     */
    BizBusinessOrder getInfoByOrdersn(String orderSn);


    List<BizBusinessOrderGoods> getOrderGoodsList(Integer orderId);

    String[] getOrderUseDate(String getUseStartTime, String getUseEndTime, BizScenicBusiness kcScenicBusiness, BizOrderInfoDTO kcOrderInfoDTO);



   // void autoReviewRefundAsync(List<KcBusinessOrder> waitingReceiveOrders);

}
